万卷网> 蓝桥竞赛 >蓝桥C++ > 2025年4月蓝桥杯蓝桥C++(STEMA)中/高级

2025年4月蓝桥杯蓝桥C++(STEMA)中/高级
STEMA 2025 2025-07-24 20:41:16 95

一、单选题

1.

运行语句 cout << 2 * (5 + 1); 的结果是?( )

A.

10

B.

11

C.

12

D.

13

2.

下列选项中,用于修饰常量的关键字是?( )

A.

int

B.

double

C.

const

D.

void

3.

运行以下程序,输出的结果是?( )

int ans = 0;
for (int i = 0; i <= 15; i++) {
    if (i % 2 == 0 && i % 3 == 0) {
         ans += i;
     }
}
cout << ans;
A.

6

B.

12

C.

18

D.

36

4.

运行以下程序,输出的结果是?( )

int func(int n) {
    static int count = 0;
    count++;
    if(n <= 0) return count;
    return func(n - 1) + func(n - 2);
}
int main() {
    cout << func(3);
    return 0;
}
A.

5

B.

9

C.

16

D.

32

5.

下列哪个选项能够正确定义并初始化一个整型指针?( )

A.

int *p = 10;

B.

int *p = nullptr;

C.

int q = 5; int *p = q;

D.

int *p; *p = 5;

二、编程题

1.

选球的最大总和

题目描述:
在一个球池中,有 a 个黑球和 b 个白球,每个黑球价值 5 分,每个白球价值 3 分。

现需要从球池中选择若干个球,选择时需满足一个条件:选取的黑球数量必须大于或等于选取的白球数量。

请找出一种满足条件的选球方案,使得所选球的价值总和达到最大,并输出这个最大的价值总和。

输入描述:

输入两个整数 a,b(1≤a,b≤100),分别表示黑球和白球的数量,整数之间以一个空格隔开。

输出描述:

输出一个整数,表示符合条件的最大价值总和。


样例输入:

5 8

样例输出:

40
2.

交替序列

提示信息:子序列:对于一个序列 a,删除其中 0 个或多个元素而不改变剩余元素的顺序,得到的序列称为 a 的子序列。

例如:序列 a 为 {1,2,3,4,5},则序列 {1},{1,2,3},{1,3,5} 等都可以称为序列 a 的子序列。

题目描述:给定一个包含 n 个整数的序列 a,请从中找出一个满足以下条件的子序列:

(1)该子序列中相邻元素的正负号相反(如果第一个元素为正数,则第二个元素为负数,第三个元素为正数,以此类推。

反之,如果第一个元素为负数,则第二个元素为正数,第三个元素为负数,以此类推);

(2)该子序列长度最长;

(3)在满足以上条件的情况下,该子序列中的元素之和最大。

最后输出该子序列中的元素之和。

例如:n = 5;序列 a 为 {2,-1,-3,15,10}。

同时满足条件 1 和条件 2 的子序列有 {2,-1,15},{2,-1,10},{2,-3,15},{2,-3,10};

其中元素之和最大的子序列是 {2,-1,15},和为 16。

输入描述:

第一行输入一个整数 n(1≤n≤2×10^5);

第二行输入 n 个整数 ai(-10^9≤ai≤10^9,ai≠0),整数之间以一个空格隔开。

输出描述:

输出一个整数,表示满足题目要求的子序列的元素之和。


样例输入:

5
2 -1 -3 15 10

样例输出:

16
3.

寻找幸运数

题目描述:小夏的班级正在进行一个寻找幸运数的游戏。游戏开始时,老师写下了一个幸运数,除了小夏之外其他同学都看到了这个数。

此时,班级里有 n 位同学提供了幸运数的范围 [L,R],其中 L 代表范围的左边界,R代表范围的右边界。已知这个幸运数位于所有同学提供的范围之内(包含边界)。

请根据这 n 名同学提供的范围,帮助小夏找出幸运数的最小确定范围。

例如:n = 2;2 位同学提供的幸运数范围分别是 [3,10]、[0,7];

幸运数的最小确定范围是 [3,7]。

输入描述:

第一行输入一个整数 n(2≤n≤100),表示提供幸运数范围的同学数量;

接下来 n 行,每行输入 2 个整数 L,R(0≤L≤R≤1000),分别表示该同学提供的幸运数范围的左边界和右边界,整数之间以一个空格隔开。

输出描述:

输出两个整数,分别表示幸运数的最小确定范围的左边界和右边界,整数之间以一个空格隔开。


样例输入:

2
3 10
0 7

样例输出:

3 7

4.

wolf

题目描述:给定一个仅包含小写字母的字符串 S,需按以下规则从中挑选字符组成 "wolf":

(1)每次挑选 4 个字符,且字符相对顺序保持不变;

(2)这 4 个字符从左到右恰好组成字符串 "wolf";

(3)字符串 S 中的每个字符最多被挑选一次。

请计算字符串 S 中最多能挑选出多少组 "wolf"。

例 1:S = "wolwfolf";通过下图的挑选方式,最多能挑出 2 组 "wolf";

例 2:S = "awboclffowolwof";通过下图的挑选方式,最多能挑出 2 组 "wolf"。

输入描述:

输入一个仅包含小写字母的字符串 S(4≤S 的长度≤1000)。

输出描述:

输出一个整数,表示最多能挑选出 "wolf" 的组数。


样例输入:

wolwfolf

样例输出:

2
5.

卫星绕行时间计算

题目描述:

已知某近地人造卫星绕地球旋转一圈耗时 2 小时,请计算其绕地球旋转 n 圈需要多少小时。

输入描述:

输入一个整数 n(1≤n≤100),表示人造卫星围绕地球旋转的圈数。

输出描述:

输出一个整数,表示人造卫星围绕地球旋转 n 圈需要多少个小时。


样例输入:

3

样例输出:

6
公众号
客服 反馈
顶部